package verwaltung;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class EQVerwaltung implements Verwaltung{

	// private ArrayList<Standort> standorte = new ArrayList<Standort>();
	// private ArrayList<Geraet> geraete = new ArrayList<Geraet>();
	Datenbank datenbank;
	Datenbank_JPA jpa;
	
	public EQVerwaltung() throws VerwaltungException{
		datenbank = new Datenbank();
		jpa = new Datenbank_JPA();
	}
	
	public void newStandort(String Name, String Anschrift, String Stadt) throws VerwaltungException{
        //standorte.add(new Standort(Name, Anschrift, Stadt));
        //datenbank.newStandort(Name, Anschrift, Stadt);
		jpa.newStandort(Name, Anschrift, Stadt);
    }
	
	public void standortentfernen(Standort s) throws VerwaltungException{
		//standorte.remove(s);
		//datenbank.standortentfernen(s);
		jpa.standortentfernen(s);
	}
	
	public List<Standort> getStandorte() throws VerwaltungException{
		//return datenbank.getStandorte();
		return jpa.getStandorte();
	}
	
	public void newGeraet(String Seriennummer, Standort standort, String Bezeichnung, String Kommentar, Date Datum) throws VerwaltungException{
        //geraete.add(new Geraet(Seriennummer, standort, Bezeichnung, Kommentar, Datum));
        //datenbank.newGeraet(Seriennummer, standort, Bezeichnung, Kommentar, Datum);
		jpa.newGeraet(Seriennummer, standort, Bezeichnung, Kommentar, Datum);
    }
	
	public void geraetentvernen(Geraet g) throws VerwaltungException{
		//geraete.remove(g);
		//datenbank.geraetentvernen(g);
		jpa.geraetentvernen(g);
	}
	
	public List<Geraet> getGeraete() throws VerwaltungException{
		return jpa.getGeraete();
	}
	
	public List<Geraet> sucheKommentar(String Kreterium) throws VerwaltungException{
		List<Geraet> g = jpa.getGeraete();
		List<Geraet> rueckgabe = new ArrayList<Geraet>();
		for (int i = 0; i < g.size(); i++){
			if(g.get(i).getKommentar().equals(Kreterium)){
				rueckgabe.add(g.get(i));
			}
		}
		return rueckgabe;
	}
	
	public List<Geraet> sucheStandort(String Kreterium) throws VerwaltungException{
		List<Geraet> g = jpa.getGeraete();
		List<Geraet> rueckgabe = new ArrayList<Geraet>();
		for (int i = 0; i < g.size(); i++){
			if(g.get(i).getStandort().getName().equals(Kreterium)){
				rueckgabe.add(g.get(i));
			}
		}
		return rueckgabe;
	}
	
	public List<Geraet> sucheBezeichnung(String Kreterium) throws VerwaltungException{
		List<Geraet> g = jpa.getGeraete();
		List<Geraet> rueckgabe = new ArrayList<Geraet>();
		for (int i = 0; i < g.size(); i++){
			if(g.get(i).getBezeichnung().equals(Kreterium)){
				rueckgabe.add(g.get(i));
			}
		}
		return rueckgabe;
	}
	
	public List<Geraet> sucheSeriennummer(String Kreterium) throws VerwaltungException{
		List<Geraet> g = jpa.getGeraete();
		List<Geraet> rueckgabe = new ArrayList<Geraet>();
		for (int i = 0; i < g.size(); i++){
			if(g.get(i).getSeriennumer().equals(Kreterium)){
				rueckgabe.add(g.get(i));
			}
		}
		return rueckgabe;
	}

	@Override
	public void geraetupdate(Geraet g)
			throws VerwaltungException {
		jpa.geraetupdate(g);
		
	}

	@Override
	public Standort suchestandort(String n) throws VerwaltungException {
		// TODO Auto-generated method stub
		return null;
	}
	
}
